﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Model;

namespace BiffenServiceLibrary
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService
    {

        [OperationContract]
        int DialServiceUp();

        // Movie
        [OperationContract]
        List<Movie> GetAllMovies();

        [OperationContract]
        List<Movie> GetAllActiveMovies();

        [OperationContract]
        Movie GetMovieByID(int id);

        [OperationContract]
        List<Movie> FindMoviesByTitle(string title);

        [OperationContract]
        int CreateMovie(Movie movie);

        [OperationContract]
        int UpdateMovie(Movie movie);

        [OperationContract]
        void DeleteMovie(int movID);

        [OperationContract]
        List<Event> FindEvent(string title, string instructor, string actor, string duration, string playtime, List<string> genres);

        // Employee
        [OperationContract]
        Employee GetEmployeeById(int id);
        // Members
        [OperationContract]
        Member GetMemberByID(int id);

        [OperationContract]
        Member GetMemberByName(string fname, string lname);

        [OperationContract]
        int CreateMember(Member newMember);

        [OperationContract]
        Boolean UpdateMember(Member updatedMember);

        [OperationContract]
        Boolean DeleteMember(int id);

        [OperationContract]
        List<Member> GetAllMembers();

        [OperationContract]
        List<Genre> GetAllGenres();
    }
}
